package com.love.marriage.orderInfo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.common.vo.BaseVo;
import com.love.marriage.config.Long2StringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * description:  订单表Vo
 * author:       mybatisPlus
 * createDate:   2024-10-23 22:54:09
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "OrderInfoVo", description = "订单表Vo")
public class OrderInfoVo extends BaseVo<OrderInfoVo>{

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "用户ID，关联用户表", type = "Long", implementation = Long.class)
    private Long userId;

    @Schema(description = "订单编号", type = "String", implementation = String.class)
    private String orderNumber;

    @Schema(description = "订单总金额", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal totalAmount;

    @Schema(description = "订单状态", type = "String", implementation = String.class)
    private String status;

    @Schema(description = "支付方式", type = "String", implementation = String.class)
    private String paymentMethod;

    @Schema(description = "支付时间", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime paymentTime;

    @Schema(description = "订单描述或备注", type = "String", implementation = String.class)
    private String orderDescription;

    @JsonSerialize(using = Long2StringSerializer.class)
    @Schema(description = "业务id", type = "Long", implementation = Long.class)
    private Long businessId;

    @Schema(description = "业务信息", type = "String", implementation = String.class)
    private String BusinessInfo;

    @Schema(description = "支付类型", type = "String", implementation = String.class)
    private String type;

    @Schema(description = "订单来源:（end:后台创建）", type = "String", implementation = String.class)
    private String source;

    @Schema(description = "关键字", type = "String", implementation = String.class)
    private String keyword;

    @Schema(description = "用户编码", type = "String", implementation = String.class)
    private String code;

    @Schema(description = "用户手机号", type = "String", implementation = String.class)
    private String phone;
}
